Efficient Parallel Functional Programming with Effects
نویسندگان
چکیده
Although functional programming languages simplify writing safe parallel programs by helping programmers to avoid data races, they have traditionally delivered poor performance. Recent work improved performance using a hierarchical memory architecture that allows processors allocate and reclaim independently without any synchronization, solving thus the key challenge afflicting programs. The approach, however, restricts mutation, or effects, so as ensure "disentanglement", low-level property guarantees independence between different heaps in hierarchy. This paper proposes techniques for supporting entanglement allowing use mutation at will. Our manage distinguishing disentangled entangled objects shielding from cost of management. We present semantics formalizes granularity objects, define several metrics reason about bound time space entanglement. an implementation extending MPL compiler Parallel ML. extended supports all features ML language, including unrestricted effects. experiments variety benchmarks show incurs small overhead compared sequential runs, scales well, is competitive with such C++, Go, Java, OCaml. These results our can marry safety benefits
منابع مشابه
Parallel Functional Reactive Programming
In this paper, we demonstrate how Functional Reactive Programming (FRP), a framework for the description of interactive systems, can be extended to encompass parallel systems. FRP is based on Haskell, a purely functional programming language, and incorporates the concepts of time variation and reactivity. Parallel FRP serves as a declarative system model that may be transformed into a parallel ...
متن کاملEden - Parallel Functional Programming with Haskell
Eden is a parallel functional programming language which extends Haskell with constructs for the definition and instantiation of parallel processes. Processes evaluate function applications remotely in parallel. The programmer has control over process granularity, data distribution, communication topology, and evaluation site, but need not manage synchronisation and data exchange between proces...
متن کاملParallel Functional Programming: An Introduction
Due to the absence of side-e ects in a purely functional program, it is relatively easy to partition programs so that sub-programs can be executed in parallel: any computation which is needed to produce the result of the programmay be run as a separate task. There may, however, be implicit controland datadependencies between parallel tasks, which will limit parallelism to a greater or lesser ex...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2023
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3591284